<?  
  set_time_limit(4500);
  /* Se asegura que el archivo es incluido por el index */
    defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );  
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Accion_clase_exe( $this );
    
	class Accion_clase_exe extends Exe
	{
	function Accion_clase_exe( &$oModule )
		{
			$this->oModule = &$oModule;
		  // Valida que el Entorno sea el Parametrico
			if ( ES_PARAMETRICO == false ) 
			{
				addMessage('Esta accion solo puede hacerse en el entorno parametrico');
				$this->oModule->back();    
			} 
			$this->oDatabase = openMetadataDB ( getParam('cPathModule') );
		}
		// AGREGAR_UNA_CLASE_A_UN_ACCION
		function insert()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'accion_clase_frm' );
			extract( $oForm->getFieldArray() );
			$ncSubModulo  = $this->oDatabase->getData( "SELECT ncSubModulo FROM stAccion WHERE ncAccion = $ncAccion" );
			$ncOrden      = $this->oDatabase->nextKey("stAccionClase", "ncOrden", "ncAccion= $ncAccion " );
			$this->oDatabase->insert("stAccionClase"
								,	"ncEvento", $ncEvento
								, "cMetodo", $cMetodo
								, "cParametro", $cParametro
								, "nPaso", $nPaso
								, "ncClase", $ncClase 
								, "ncOrden", $ncOrden
								, "ncAccion", $ncAccion );
			$oForm->reset();
			$this->oModule->setRedirect( CONSULTAR_CLASES_DE_UN_ACCION, "ncAccion=$ncAccion" );
		}
		
		// ELIMINAR_UNA_CLASE_A_UN_ACCION
		function delete()
		{
			$ncAccion       = getParam('ncAccion', 'GP', 0, true);
			$ncOrden        = getParam('ncOrden', 'GP', 0, true); 
			$ncSubModulo  = $this->oDatabase->getData( "SELECT ncSubModulo FROM stAccion WHERE ncAccion = $ncAccion" );
			$this->oDatabase->delete("stAccionClase", "ncAccion", $ncAccion , "ncOrden", $ncOrden);
		}
		
		// MODIFICAR_UNA_CLASE_A_UN_ACCION
		function update()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'accion_clase_frm' );
			extract( $oForm->getFieldArray() );
			$ncSubModulo  = $this->oDatabase->getData( "SELECT ncSubModulo FROM stAccion WHERE ncAccion = $ncAccion" );
			$this->oDatabase->update("stAccionClase"
								, "nPaso", $nPaso
								, "ncEvento", $ncEvento
								, "cMetodo", $cMetodo
								, "cParametro", $cParametro
								, "ncClase", $ncClase 
								, "WHERE"
								, "ncOrden", $ncOrden
								, "ncAccion", $ncAccion );
			$oForm->reset();
		}
	}
?>
